//
//  FastEnumerationAndSynthesisTest.h
//  test_simple_project
//
//  快速枚举和属性合成指令测试文件
//

#import <Foundation/Foundation.h>

@interface FastEnumerationAndSynthesisTest : NSObject

// 属性声明 - 用于测试合成指令
@property (strong, nonatomic) NSString *synthesizedProperty;
@property (strong, nonatomic) NSMutableArray *customBackingProperty;
@property (readonly, strong, nonatomic) NSString *readOnlyProperty;
@property (strong, nonatomic) NSNumber *dynamicProperty;

// 私有属性 - 用于测试自定义backing variable
@property (strong, nonatomic) NSString *customBackedProperty;

// 快速枚举测试方法
- (void)testBasicFastEnumeration;
- (void)testNestedFastEnumeration;
- (void)testFastEnumerationWithFiltering;
- (void)testFastEnumerationBreakAndContinue;

// 集合快速枚举测试
- (void)testArrayFastEnumeration;
- (void)testDictionaryFastEnumeration;
- (void)testSetFastEnumeration;
- (void)testCustomCollectionEnumeration;

// 属性合成测试方法
- (void)testPropertySynthesis;
- (void)testCustomBackingVariable;
- (void)testDynamicProperties;

@end

// 自定义可枚举类 - 实现NSFastEnumeration协议
@interface CustomEnumerableCollection : NSObject <NSFastEnumeration>

@property (strong, nonatomic) NSMutableArray *internalArray;

- (instancetype)initWithObjects:(NSArray *)objects;
- (void)addObject:(id)object;
- (NSUInteger)count;

@end